Watermark detection using a propagation map

ABSTRACT

A method for detecting and selecting watermarking in video coding is provided that comprises accessing a list of possible watermarks; generating propagation maps of modifications to the video that would be caused by applying the respective watermarks; generating a detection region responsive to each respective propagation map that includes blocks within the propagation map that collectively rank highest with respect to a selected detection criteria compared to each other region within the propagation map; selecting a threshold metric for evaluating detection regions; and removing watermarks from the list responsive to a comparison of their detection regions with the threshold metric.

CROSS REFERENCE TO RELATED APPLICATIONS

This application claims the benefit of U.S. Provisional Application Ser.No. 61/337,726 filed on Feb. 9, 2010, which is incorporated by referenceherein in its entirety.

TECHNICAL FIELD

The present invention relates to a process for detecting watermarks andusing propagation maps in advanced video coding (AVC) watermarking.

BACKGROUND

Watermarks that change pixel values can cause secondary changes toadjacent parts of the imagery that use the changed pixels as areference. Watermarks that change motion vector values can causesecondary changes to adjacent parts of the imagery that use the changedmotion vectors as a reference.

Propagation maps have been used in a fidelity criterion(PCT/US09/004,702 and PCT/US09/004,752) to ensure that a proposed changewill not introduce fidelity artifacts anywhere in the propagation path.

In H.264/AVC, a two-step watermarking modifies one block at a time. Thewatermark detector then analyzes that one block in the process ofrecovering the watermark payload. This method suffers when thewatermarked content undergoes a geometric distortion prior to watermarkrecovery. Slight misalignments result in a large percentage of thetarget block being missed by the detector and can yield unreliabledetection.

As such, a need exists for an improved watermark detection method thatcan capture geometric distortions that current detection schemes miss.

SUMMARY

A method is provided for detecting watermarks and using propagation mapsin advanced video coding watermarking. The method can comprise accessinga propagation map associated with a watermark from a list having one ormore watermarks; defining at least one detection criterion for blocks inthe propagation map; identifying at least one region of at least one ofthe blocks contained within the propagation map, wherein the at leastone region is grouped responsive to the at least one detectioncriterion; and producing information of the at least one region. Theregions can be a group of connected blocks. There can be a plurality ofdifferent regions and blocks in one region can have a different signalthan blocks in another region. The information can be spatial and/ortemporal information, wherein spatial information could include at leastthe size of regions, the number of regions, the shape of the regions,and the location of the regions. The detection criterion can be changein luminance level and the signal can be the sign of the change. Themethod can further include determining the average change in luminancelevel for each region in each watermark and the information can includethe average luminance. Additionally, the information for each region ineach watermark can be prioritized such that each watermark has apriority region that is characterized by a metric, wherein the methodcould further comprise selecting a threshold metric and placingwatermarks having priority regions exceeding the threshold metric in apreferred list of possible watermarks to apply to video data, whereinexceeding means outperforming the threshold metric.

A feature of the invention can further comprise generating a flag matrixto identify the at least one region and using the results to generatethe preferred list of watermarks. This feature can comprise selecting aseed block for initiating the flag matrix from blocks within thepropagation map, the seed block being part of at least one region;determining a signal of the seed block; populating the flag matrix withadditional blocks adjacent to the seed block, the additional blocks havethe same kind of signal as the seed block; continuing to populate theflag matrix with other blocks that are connected to the seed blockthrough at least the additional blocks, wherein other blocks and anyintervening blocks have the same kind of signal as the seed block; andassigning the seed block and any blocks in the populating and furtherpopulating steps to a first region, thereby producing the first regionin the identifying step. A second region can be obtained by selectinganother seed block from blocks within the propagation map that are notalready assigned to at least one region; and running the determiningstep, populating step, further populating step, and assigning step forthe another seed block. Additional regions can be obtained by continuingto select other seed blocks and running the determining step, populatingstep, further populating step, and assigning step for the other seedblocks until all the blocks in the propagation map are assigned. Thisfeature can further comprise selecting a priority region of thepropagation map for each watermark based on a metric; selecting athreshold metric; and placing watermarks having priority regionsexceeding or outperforming the threshold metric in a select list ofpossible watermarks to apply to video data; wherein the metric is the atleast one detection criterion and is a measure of luminance change; andthe kind of signal is the sign of the luminance change.

BRIEF DESCRIPTION OF THE DRAWINGS

The present principles may be better understood in accordance with thefollowing exemplary figures, in which:

FIG. 1 is a block diagram of the method for determining a watermarkdetection region according to the invention;

FIG. 2 is a block diagram of an algorithm for generating a detectionregion for the method in FIG. 1;

FIG. 3 shows a connected region according to the invention whichincludes A pixels that are part of an original block, but not includedin the detection due to a shift and which includes B pixels that are notpart of the original block, but are included during the detection due tothe shift;

FIG. 4 shows another view a connected region involving A and B pixelsand shifting;

FIG. 5 shows another view a connected region that involves luminancesums of A and B pixels; and

FIG. 6 is a block diagram of the method for the optimal detectionparameters according to the invention.

DETAILED DESCRIPTION

The disclosure relates to a 2-step watermarking methods, wherein the twosteps are as follows:

1. Select a list of changes that meet all watermarking criteria. Thecriteria can include fidelity, robustness, and compliance.

2. Use the watermark payload to execute a subset of those changes.

The focus of the disclosure is to use propagation maps in the robustnesscriterion of the first step and use propagation maps as an input as wellfor determining detection regions and estimating a robustness score inthe detection region.

Regarding robustness, a simple measure of robustness is the amount ofluminance change introduced by potential candidate changes. One assumesthat candidate changes that result in higher luminance changes will bemore robust. Any candidate for which the change in luminance is belowthe robustness threshold will be removed from the list candidatechanges.

Particularly, the current disclosure is motivated by the desire to useone or more regions in the propagation map for detection. The detectionregion can be a single macroblock in the propagation map or acombination of multiple macroblocks. In many cases, larger detectionregions can provide more robustness to certain geometric distortions.This takes advantage of the first step of candidate change selection.Here, several methods are proposed to evaluate the potential robustnessof detection regions. Changes that result in strong robustness arepreferred and descriptions of those regions are provided to thewatermark detector as detection regions.

The motivation for the current disclosure includes that fact thatwatermarked content in the prior art two-step watermarking process canundergo a geometric distortion prior to watermark recover, whereinslight misalignments result in a large percentage of the target blockbeing missed by the detector. The current disclosure specificallyutilizes the propagation map for detection to achieve strongerrobustness and overcome the shortcomings of the prior art.

An aspect of the disclosure is described with reference to FIG. 1. Theinput is a populated propagation map 10. The propagation map can takemany forms and can generally be characterized as essentially lists ofall the blocks in the imagery that would be affected by a change in thebitstream of a video to be watermarked. The propagation map 10 can befurther populated with information regarding the specific change thatwould appear in each constituent block. In a preferred embodiment, thedetection measure is total luminance.

This populated propagation map is the input to the region detection step20, where the user can define at least one detection criterion which canbe a detection measure to analyze and identify individual blocks withinthe propagation map for placing into specific regions which can be grownin final detection regions.

The final output in FIG. 1 is a description of the detection region 30.This description indicates the spatial and/or temporal, extent of thedetection region as well as a robustness score. The robustness score canindicate the estimated robustness of the detection region. Spatialinformation could include at least the size of regions, the number ofregions, the shape of the regions, and the location of the regions.

FIG. 1 is shown for a single propagation map input. In practice inpreprocessing, there will be a large list of possible watermarks andthere will be a propagation maps for each watermark. This process flowshown in FIG. 1 would be applied to each of a large list of suchpropagation map inputs resulting in a large list of detection regionsand robustness scores. A later process (e.g. the Changeable BlockSelection as described in PCT/US09/004,706) can use robustness score asone parameter in selecting the final set of changes. The detectionregion extent can be used by the detector for watermark recovery. In theend, what the user will have for each watermark is a propagation map inwhich there will be some identified detection region or regions thereinand associated information or metric for each detection region. Next,the best detection region will be selected based on the information ormetric for each watermark and then the best watermarks will be selectedbest of comparing the information or metric of the best detectionregion. Here, the user would select or define some threshold criteriafor selecting or prioritizing the best watermarks and these bestwatermarks will be the watermarks placed in the list of possiblewatermarks to embed and the other watermarks will be excluded from thelist. The best detection regions can be called a priority region.

Regarding watermark detection, watermarks can be detected from someanalysis of the macroblock with maximum luminance change. Generally, awatermark with stronger energy will be more robust. If the size ofdetection region is fixed, a larger luminance change will be more robustthan a smaller luminance change. In the case of 2-step watermarking, theprimary change will result in a series of blocks having changes to theirluminance at different levels. This forms the propagation map. A simpleway to improve the robustness is to evaluate the total block luminancechange of all the macroblocks in the propagation map, and select themacroblock that has the largest total luminance change as detectionmetric. Let P denote the propagation map with N macroblocks. Amacroblock b_(i) is one of the N macroblocks, i.e. b_(i)εP, 1≦i≦N. Letl_(i) denote the original total luminance of block b_(i) and l_(i)′denote the total luminance of block b_(i) after watermark embedding.Then one can find block b_(k) from |l_(k)−l_(k)′|=max(|l_(i)−l_(i)′|)where 1≦i≦N. The location of block k can be stored in the detectionmetadata for the detector.

Now the region finder 21 of FIG. 1 will be discussed. The region finder21 reads in the information of the input populated propagation map 10,and outputs a collection of regions such that the blocks in the sameregion satisfy some predefined criteria, which can be called a detectioncriterion or criteria.

In one embodiment, the criteria for blocks being classified into oneregion are that they are 4-connected and their luminance changes are ofthe same sign. Two blocks are 4-connected if they are spatially adjacentto each other, horizontally or vertically. Thus, a single block is4-connected to exactly 4 other blocks, which are the one above, the onebelow, the one on the right, and one on the left. In order words,adjacent blocks for consideration are considered the immediate blocksare above, below, to the right and to the left. Non-corner blocks on theborder of the image are connected to three other blocks and cornerblocks are connected to two blocks. A region in which every block isconnected to at least one other block in the region will also be calleda 4-connected region.

The problem of finding a connected region within a certain area can besolved by common segmentation algorithms such as region-growth and splitand merge. One can employ a region growing algorithm. After reading theinput information of the propagation map, one builds a flag matrix forthe propagation map with each entry indicating the status of thecorresponding block. This flag matrix is initialized with zeros.

The search algorithm starts with a seed block for region finding. Theseed block is any block corresponding to a 0 entry in the flag matrixand is therefore not yet assigned to any region. The first region willbe labeled beginning with an index value of 1. From the first seed blockthe first region is found. When the first region is complete, thealgorithm assigns the next, consecutive region index value to the nextseed block and replaces the 0 in the flag matrix with this index. Once aseed block is obtained, the four 4-connected neighbors of the seed blockare examined unless the seed block is at the edge of the propagation mapin which case there will be less than four neighbors. If a neighborblock has the flag value 0 which implies that it is not yet assigned toregion) and the sign of the luminance change is the same as that of thecorresponding seed block, the block becomes part of the current regionand the entry in the flag matrix is replaced with the current regionindex. This block is then added to a queue for further analysis, whichimplies that this block's neighbor will be examined. After all of the4-connected neighbors have been examined, the process is repeated withthe first block on the queue: all of its 4-connected neighbors areexamined; blocks that are not yet assigned to a region and have the samesign luminance change are placed on the queue and their correspondingentry in the flag matrix is set to the region index. This processcontinues until the queue is empty. At this point, one has finishedidentifying one region. If there are any blocks with 0 entries in theflag matrix remaining, one of these is selected to be the next seedblock, the region index is incremented, and the process repeats.

The search algorithm is generally shown in FIG. 2 and starts with a seedblock, which can be a randomly selected block within the propagation mapor selected according to some protocol. Regardless of how the seed blockis selected, it is important to point out that in a preferred embodimentall of the blocks in the propagation map will be examined and placed ina region. At the start of the algorithm all blocks in the propagationmap are assigned an index of 0 which is stored in flag matrix F, and afirst region index of 1 is assigned to RegionIndex variable in step 201.In step 202, a block i with flag 0, implying that the block has not beenassigned to any region, is selected. The sign of the statistic value,such as the luminance value, of the block is recorded in step 203. Instep 204, block i's flag F_(i) is assigned the value of RegionIndex,currently 1, and block i is then placed in the queue Q In step 205, thequeue Q is checked for emptiness. If it is not empty, the first block jin the queue will be taken from the queue in step 208 and each of itsfour adjacent blocks is examined in Step 209. In step 210, if theneighblor block k has flag 0 and the sign of the block k is compared tothat of the current seed block and if their signs are the same, thenblock k will be placed in the queue Q in Step 211, and in the meanwhileits flag is assigned the value of region index RegionIndex. The adjacentblocks k not having the same sign will eventually be assigned anotherindex number, but will not be placed in the queue in the current round.Each of the four neighbor blocks is examined in the same way until allof them have been examined in step 212. Then the next block in the queueQ is picked which will go through the same process loops through steps209, 210, 211 and 212 until the queue is empty, which implies thealgorithm has found the boundary for the first region of connectedblocks of index 1 and the outer neighbors of the peripheral blocks ofthe first region have a different sign than the seed block.

When the queue is empty after a region has been completely identified,the algorithm advances by assigning the next, consecutive region indexvalue in step 206 to another seed block and subsequent adjacent blocksof index 0 and the same sign as the current seed block that areprocessed will be given the next index number. The algorithm runsthrough the process steps beginning with step 202 to map out this nextregion.

The algorithm will run repeatedly until there are no blocks with 0entries remaining. At this point, the flag matrix is set.

Note that this segmentation, based on connected regions with the samesign in statistics of the block, such as a luminance change, is unique.There is only one such segmentation. Thus, the choice and order of seedblocks does not influence the segmentation. As such, the seed blocks canbe selected randomly.

An alternative embodiment of the region finder is that each block isconsidered an independent region. In this special case, the regionfinder is essentially an optional component as it does not change theinformation from input to output.

Another embodiment shown in FIG. 3 involves selecting a connected regionwith a robustness score defined based on the luminance difference of itsborder pixels. This is designed to resist shifting attack. Specifically,two areas are defined for each macroblock and here an example ofshifting left and up by one pixel is employed to illustrate these areas.Area A includes the pixels that are part of the original block, but arenot included in detection due to the shift. Area contains subareasA_(c), A_(r) and A_(x) as shown in FIG. 3. A_(c) is a 15-by-1 area,A_(r) is a 1-by-15 area, and A_(x) contains just one pixel. Area Bincludes the pixels that are not part of the original block, but areincluded during the detection due to the shift. Area B contains subareasB_(c), B_(r) and B_(x). B_(c) is a 15-by-1 area, B_(r) is a 1-by-15area, and B_(X) contains just one pixel. S is used to denote theremaining part of the block that has been calculated correctly. Notethat here one uses a 16 by 16 macroblock as an example. In case of otherblock sizes, the sizes of subareas in A and B change accordingly.

The pixel values of the border pixels of each macroblock are calculatedand recorded as shown in FIG. 4. Specifically, the luminance sum of theareas A_(r), A_(c), A_(x) and B_(r), B_(c), B_(X) are calculated. Inthis figure, the area 301 identifies the position of the originalmacroblock, while the area 302 indicates the position of the same blockafter shifting left and up by 1 pixel. The detector, which does not havethe information of how much the block is shifted, would use the regiondelimited by the area 301 to calculate the detection statistic based onthe luminance sum inside the macroblock. This would have the effect ofhaving the actual pixel values in A_(r), A_(c), and A_(x) missing andthe pixels in B_(r), B_(c), and B_(x) included by mistake.

A new robustness measure R_(s) is defined as

$\begin{matrix}{R_{s} = {1 - {Err}_{\Delta \; L}}} & (1) \\{where} & \; \\\begin{matrix}{{Err}_{\Delta \; L} = \frac{{{{lum}(B)} - {{lum}(A)}}}{\Delta \; L_{total}}} \\{= \frac{{{{lum}\left( {B_{c} + B_{r} + B_{x}} \right)} - {{lum}\left( {A_{c} + A_{r} + A_{x}} \right)}}}{{\Delta \; {L\left( {A_{c} + A_{r} + A_{x} + S} \right)}}}}\end{matrix} & \;\end{matrix}$

One can see that if the luminance calculation error due to shift issmall compared with the luminance change of the macroblock, then theerror rate Err_(ΔL) is small and the robust metric R_(s) is high. On theother hand, if the error is high compared with the total luminancechange, which can be, for example, higher than 1, the robust metricR_(s) can be negative. Intuitively, one should avoid selecting suchregions, where the watermark can be totally destroyed by slightshifting.

With the newly defined robust metric, one can update the connectedregion identification process in the following way. First, one picks themacroblock among the blocks on the propagation map which has the highestR_(s). Starting from this block, one adds new blocks which have 4 wayconnectivity with one of the blocks in the current region only when theR_(s) of the region becomes higher after incorporating the block. Thearea A and area B of a connected region can be derived from the area Aand B of each individual macroblock. For example, the area A and B forthe region shown in FIG. 4 can be derived as:

A_(c)=A_(C1)∪A_(c2)∪A_(x2);

A_(r)=A_(r1)∪A_(r3);

B_(c)=B_(c1)∪B_(c3);

B_(r)=B_(r2)∪B_(r3)∪B_(x2);

A_(x)=A_(x1);B_(x)=B_(x3).

Accordingly, the robust metric R_(s) for a connected region can bedefined using its area A and B.

Note that the shifting attack can be in any direction and thecorresponding area A and area B would be different. To simplify theimplementation, one calculates the following eight luminance sums:A_(cL), A_(cR), A_(rT), A_(rB), B_(cL), B_(cR), B_(rT), B_(rB) as shownin FIG. 5. Here, A_(cL) and A_(cR) are luminance sums of the left-mostand right-most columns of the macroblock, respectively; A_(rT) andA_(rB) are the first and last row luminance sum, respectively; B_(cL)and B_(cR) are the luminance sum of the immediate left column and rightcolumn neighbors, respectively; and B_(rT) and B_(rB) are the luminancesum of the top and bottom row neighbors, respectively. In general, theseeight luminance regions can be defined for multiple columns/rows.

With the calculated luminance sum A_(s) and B_(s), one is able toestimate the luminance error introduced due to shifting. For example,when the frame is shifted to left by one pixel, the luminance error atthe detection would be B_(CR)-A_(cL). When the frame is shifted to upperleft by one pixel, the error can be estimated asB_(cR)+B_(rB)−(A_(cL)+A_(rT))=(B_(cR)−A_(cL))+(B_(rB)−A_(rT)). Note thatthe shifting errors consist of one or more of 4 basic elements:(B_(CR)−A_(CL)), (B_(cL)−A_(cR)), (B_(rT)−A_(rB)), (B_(rB)−A_(rT)). Thisindicates that these four terms can be used to measure the robustness ofthe block to shifting attack. One can choose to use max(|B_(cR)−A_(CL)|,|B_(cL)−A_(cR)|, |B_(rT)−A_(rB)|, |B_(rB)−A_(rT)|), which is the worstcase scenario. Alternatively, one can use the average value of the fourerrors, which is(|B_(cR)-A_(cL)|+|B_(cL)−A_(cR)|+|B_(rT)−A_(rB)|+|B_(rB)−A_(rT)|)/4, inthe calculation of Err_(ΔL) metric, which is the average case scenario.

With the simplification in FIG. 5, the update of the eight measurementsfor regions with any shape can be performed easily. For each block, onerecords its neighbor availability. If a block does not have a right(left) neighbor, then its A_(cR) (A_(cL)) will be part of the A_(cR)(A_(cL)) of the whole region. Similarly, A_(rT) (A_(rB)) of a region isthe sum of the A_(rT)s(A_(rB)s) of those blocks without a top (bottom)neighbor. The same calculation applies to the B_(cL), B_(cR), B_(rT),B_(rB). Then the Err_(ΔL) is updated as

$\begin{matrix}{{Err}_{\Delta \; L} = \frac{\max \left( {{{B_{cR} - A_{cL}}},{{B_{cL} - A_{cR}}},{{B_{rT} - A_{rB}}},{{B_{rB} - A_{rT}}}} \right)}{\Delta \; L_{total}}} & (2)\end{matrix}$

for a worse case scenario, and

$\begin{matrix}{{Err}_{\Delta \; L} = \frac{\left( {{{B_{cR} - A_{cL}}} + {{B_{cL} - A_{cR}}} + {{B_{rT} - A_{rB}}} + {{B_{rB} - A_{rT}}}} \right)}{4\Delta \; L_{total}}} & (3)\end{matrix}$

for an average case scenario.

The combination enumerator 22, which follows the Region Finder 21 inFIG. 1, is a process that generates all possible combinations of theregions listed at the input. An exhaustive listing can be achieved byusing a binary accumulator as is described by the following algorithm.This algorithm extensively lists all 2^(N)−1 combinations of N differentregions.

a. Form a binary counter with N bits, where N represents the totalnumber of regions. Assign each region to a bit location in this binarycounter.

b. Set the initial value of the binary counter to 0.

c. Increase the value of this binary counter by 1.

d. Combine all regions for corresponding to a bit value of 1 in thecurrent counter value. Add this combined region to the list ofcombinations.

e. Go to step c until the value of the counter is 2^(N)−1

The robustness estimator 23, which follows the combination enumerator 22in FIG. 1, evaluates each of the enumerated combined regions and assignsa robustness score to each. The robustness score corresponds to anestimate of the robustness of the region such that the regions expectedto be most robust can be identified.

Here, the term “most robust” is vague, as different applications requiredifferent levels of robustness to different distortions. In thisformulation, first one defines a number of simple robustness measuresand then combines those measures to obtain a robustness score. One canrepresent this in a general form as shown in Equation 4.

R=F(r ₁ ,r ₂ . . . r _(k))  (4)

where r₁, r₂, . . . r_(K) are the simple robustness measures and R isthe robustness score. The function F can be represented as someprototype formulation of r₁, r₂, . . . r_(K) controlled by a set ofparameters α₁, α₂, . . . α_(m). For a given formulation, the best set ofparameter values can be empirically determined. For example, one canformulate the function F as a linear combination of r₁, r₂, . . . r_(K)as shown in Equation 2.

R=α ₁ r ₁+α₂ r ₂+ . . . +α_(K) r _(K)  (5)

where one normalizes the parameters such that

${\sum\limits_{i}\alpha_{i}} = {1.0.}$

R can be referred to as the linear robustness score.

Another example formulation can be described by Equation 6, where therobustness measures are combined non-linearly and the resulting R iscalled the non-linear robustness score.

R=r ₁ ^(α) ¹ ×r ₂ ^(α) ² × . . . ×r _(K) ^(α) ^(K)   (6)

In a preferred embodiment, one chooses two robustness measures: r_(G)for geometric distortions and r_(v) for valuemetric distortions. r_(G)measures the percentage of accurate pixels included in the detectionregion after shifting distortion. The higher the r_(G) is, the morepixels in the distorted detection region belong to the originaldetection region and a more accurate detection is expected. One choosesr_(G) to be defined based on shifting operation for simplicity. One cansee that a higher r_(G) indicates higher robustness to other types ofgeometric distortions as well, such as rotation. r_(G) is defined as

$r_{G} = {1 - \frac{\begin{matrix}{\# \mspace{14mu} {wrong}\mspace{14mu} {pixels}\mspace{14mu} {in}\mspace{14mu} {the}\mspace{14mu} {region}\mspace{14mu} {after}\mspace{14mu} {shifting}\mspace{14mu} {one}} \\{{pixel}\mspace{14mu} {both}\mspace{14mu} {horizontally}\mspace{14mu} {and}\mspace{14mu} {vertically}}\end{matrix}}{{the}\mspace{14mu} {size}\mspace{14mu} {of}\mspace{14mu} {the}\mspace{14mu} {region}\mspace{14mu} {in}\mspace{14mu} {pixels}}}$

Alternatively, one can use the robustness metric defined in Equation (1)along with Equation (2) or (3) for r_(G).

r_(v) measures the average luminance change per pixel due to watermarkembedding. Apparently, the higher the r_(v) is, the more robust theregion is to value metric distortions, such as additive noise. r_(v) isdefined as

$r_{v} = \frac{\begin{matrix}{{the}\mspace{14mu} {total}\mspace{14mu} {luminance}\mspace{14mu} {change}\mspace{14mu} {in}\mspace{14mu} {the}\mspace{14mu} {region}\mspace{14mu} {due}\mspace{14mu} {to}} \\{{watermark}\mspace{14mu} {embedding}}\end{matrix}}{{the}\mspace{14mu} {size}\mspace{14mu} {of}\mspace{14mu} {the}\mspace{14mu} {region}\mspace{14mu} {in}\mspace{14mu} {pixels}}$

With these two robustness measures, the linear robustness score would be

R=α ₁ r _(G)+α₂ r _(v),  (7)

and the nonlinear robustness score would be

R=r _(G) ^(α) ¹ ×r _(v) ^(α) ² .  (8)

Given a robustness estimator (formulation and parameter values), one cancalculate the robustness score for each of the combined regions thatcome from the combination enumerator 22. The result is then passed tothe selector 24. The parameters indicate the relative importance of thevarious robustness measures and can be set according to requirements ofthe application or determined experimentally to achieve optimumperformance. The following experimental method is introduced to estimatethe parameters.

One method for establishing the parameter values is to select a testdata set and a set of distortions and then search the parameter spacefor the set of parameter values that yield the highest correlationbetween the detection result and the robustness score specified byEquation 4. The rationale behind this method is that watermark changesthat have a high robustness score should have a high detection result.Likewise, changes that have a low robustness score should have a lowdetection result.

FIG. 6 describes the process to estimate the optimal parameters given anempirically formulation. In the detection effectiveness vector path 600,watermarked content 610 is fed into a distortion module 620, where thedistortion model is determined by the application in which thewatermarking is used. A detection effectiveness estimator 630 estimatesthe detection result. Then a detection effectiveness vector 640 isformed.

To obtain the optimum parameters set for the test content, all parametercombinations will be tested. For each parameters set, in the functionparameters set path 700, one calculates the robustness score 730 of theembedded watermarks from robustness metrics 720. Then a robustness scorevector 740 is formed for each parameters set.

A vector correlator 810 correlates the two vectors generated previouslyand obtains a correlation value. The one parameter set that gives thelargest correlation should reflect the best robustness function thatmeasures the robustness of the watermark under the expected distortionmodel.

One example of the detection effectiveness measurements can be thedifference between the embedded watermark sequence, denoted as L_(e),and the extracted test sequence from the attacked/distorted content,denoted as L_(d). Intuitively, for detection region i, if L_(di)deviates substantially from L_(ei), i.e. |(L_(di)−L_(ei))/L_(ei)|carries a large value, one would assume region i is less robust to thedesigned attack. Consequently, it should have a small robust metric.Similarly, if |(L_(di)−L_(ei))/L_(ei)| is a small value, region i willbe identified as robust to the designed attack and thus thecorresponding robustness metric should be large.

The goal is to achieve a positive correlation between the detectioneffectiveness measurement and the robustness metric. Therefore, thecomplement of the difference |(L_(di)−L_(ei))/L_(ei)| is employed as thedetection effectiveness measurement M_(di), which is defined asM_(di)=1−min(1, |(L_(di)−L_(ei))/L_(ei)|).

One uses 1 to bound the difference |(L_(di)−L_(ei))/L_(ei)| in order toreduce the effect of outliers in |(L_(di)−L_(ei))/L_(ei)|. M_(di)measures how much the extracted watermark matches the embeddedwatermark. The larger M_(di) is, the higher the robustness of thedetection is.

Now with the estimated robustness performed in FIG. 1, the selector 24is employed. The selector 24 is a process to select the regioncombination that has the biggest robustness measurement. Then, theselector 24 provides the outputregion combination information togetherwith other information needed by the watermark detector for watermarkdetection.

1. A method comprising: accessing a propagation map associated with awatermark from a list having one or more watermarks; defining at leastone detection criterion for blocks in the propagation map; identifyingat least one region of at least one of the blocks contained within thepropagation map, wherein the at least one region is grouped responsiveto the at least one detection criterion; and producing information ofthe at least one region
 2. The method of claim 1 wherein the at leastone region is a group of connected blocks.
 3. The method of claim 2wherein there are a plurality of different regions and blocks in atleast one region have a different signal than blocks in another region.4. The method of claim 1 wherein the information is spatial information.5. The method of claim 4 wherein the spatial information includes atleast the size of regions, the number of regions, the shape of theregions, and the location of the regions.
 6. The method of claim 1wherein the information is temporal information.
 7. The method of claim1 wherein the information is spatiotemporal information.
 8. The methodof claim 1, wherein the detection criterion is change in luminancelevel.
 9. The method of claim 3, wherein the detection criterion ischange in luminance level and the signal is the sign of the change. 10.The method of claim 9, wherein the average change in luminance level isdetermined for each region in each watermark and the informationincludes the average luminance.
 11. The method of claim 3, wherein theinformation for each region in each watermark is prioritized such thateach watermark has a priority region that is characterized by a metric.12. The method of claim 11 further comprises selecting a thresholdmetric; and placing watermarks having priority regions exceeding oroutperforming the threshold metric in a list of possible watermarks toapply to video data.
 13. The method of claim 1 further comprisesgenerating a flag matrix to identify the at least one region.
 14. Themethod of claim 13 further comprises: selecting a seed block forinitiating the flag matrix from blocks within the propagation map, theseed block being part of at least one region; determining a signal ofthe seed block; populating the flag matrix with additional blocksadjacent to the seed block, the additional blocks have the same kind ofsignal as the seed block; continuing to populate the flag matrix withother blocks that are connected to the seed block through at least theadditional blocks, wherein other blocks and any intervening blocks havethe same kind of signal as the seed block; and assigning the seed blockand any blocks in the populating and further populating step to a firstregion, thereby producing the first region in the identifying step. 15.The method of claim 14 further comprises: selecting another seed blockto determine a second region for further population the flag matrix fromblocks within the propagation map that are not already assigned to atleast one region; and running the determining step, populating step,further populating step, and assigning step for the another seed block,thereby producing the second region in the identifying step.
 16. Themethod of claim 15 further comprises: continuing to select other seedblocks and running the determining step, populating step, furtherpopulating step, and assigning step for the other seed blocks until allthe blocks in the propagation map are assigned, thereby producing otherregions in the identifying step.
 17. The method of claim 16 furthercomprises: selecting a priority region of the propagation map for eachwatermark based on a metric; selecting a threshold metric; and placingwatermarks having priority regions exceeding or outperforming thethreshold metric in a select list of possible watermarks to apply tovideo data.
 18. The method of claim 17 wherein: the metric is the atleast one detection criterion and is a measure of luminance change; andthe kind of signal is the sign of the luminance change.
 19. A methodcomprising: accessing or generating a list of possible watermarks tovideo; generating individual propagation maps (P) of modifications tothe video that would be caused by applying the respective watermarks,the propagation maps each being a collection of constituent blocks ofthe video modified by the respective watermarks; generating a detectionregion responsive to each respective propagation map that includesblocks within the propagation map that collectively rank highest withrespect to a selected detection criteria compared to each other regionwithin the propagation map; selecting a threshold metric for evaluatingdetection regions; and removing watermarks from the list responsive to acomparison of their detection regions with the threshold metric.